package edu.unf.cen6940.service;

import edu.unf.cen6940.domain.Faculty;
import edu.unf.cen6940.domain.Facultyresearch;
import edu.unf.cen6940.domain.Facultyresearchtostudent;
import edu.unf.cen6940.domain.Thesiscommittee;

import java.util.List;
import java.util.Set;

/**
 * Spring service that handles CRUD requests for Faculty entities
 * 
 */
public interface FacultyService {

	/**
	 * Return all Faculty entity
	 * 
	 */
	public List<Faculty> findAllFacultys(Integer startResult, Integer maxRows);

	/**
	 * Delete an existing Facultyresearch entity
	 * 
	 */
	public Faculty deleteFacultyFacultyresearchs(Integer faculty_facultyId, Integer related_facultyresearchs_facultyResearchId);

	/**
	 * Delete an existing Facultyresearchtostudent entity
	 * 
	 */
	public Faculty deleteFacultyFacultyresearchtostudents(Integer faculty_facultyId_1, Integer related_facultyresearchtostudents_facultyResearchId, Integer related_facultyresearchtostudents_studentId, Integer related_facultyresearchtostudents_facultyId);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public void saveFaculty(Faculty faculty);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForCommitteeMember4(Integer faculty_facultyId_2, Integer related_thesiscommitteesforcommitteemember4_thesisCommitteeId);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForCommitteeMember5(Integer faculty_facultyId_3, Integer related_thesiscommitteesforcommitteemember5_thesisCommitteeId);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForCommitteeMember1(Integer faculty_facultyId_4, Integer related_thesiscommitteesforcommitteemember1_thesisCommitteeId);

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public void deleteFaculty(Faculty faculty_1);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForCommitteeMember5(Integer facultyId, Thesiscommittee related_thesiscommitteesforcommitteemember5);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForChair(Integer faculty_facultyId_5, Integer related_thesiscommitteesforchair_thesisCommitteeId);

	/**
	 * Return a count of all Faculty entity
	 * 
	 */
	public Integer countFacultys();

	/**
	 */
	public Faculty findFacultyByPrimaryKey(Integer facultyId_1);

	/**
	 * Save an existing Facultyresearchtostudent entity
	 * 
	 */
	public Faculty saveFacultyFacultyresearchtostudents(Integer facultyId_2, Facultyresearchtostudent related_facultyresearchtostudents);

	/**
	 * Save an existing Facultyresearch entity
	 * 
	 */
	public Faculty saveFacultyFacultyresearchs(Integer facultyId_3, Facultyresearch related_facultyresearchs);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForCommitteeMember3(Integer facultyId_4, Thesiscommittee related_thesiscommitteesforcommitteemember3);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForCommitteeMember1(Integer facultyId_5, Thesiscommittee related_thesiscommitteesforcommitteemember1);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForCommitteeMember2(Integer faculty_facultyId_6, Integer related_thesiscommitteesforcommitteemember2_thesisCommitteeId);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForCommitteeMember2(Integer facultyId_6, Thesiscommittee related_thesiscommitteesforcommitteemember2);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Faculty deleteFacultyThesiscommitteesForCommitteeMember3(Integer faculty_facultyId_7, Integer related_thesiscommitteesforcommitteemember3_thesisCommitteeId);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForChair(Integer facultyId_7, Thesiscommittee related_thesiscommitteesforchair);

	/**
	 * Load an existing Faculty entity
	 * 
	 */
	public Set<Faculty> loadFacultys();

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Faculty saveFacultyThesiscommitteesForCommitteeMember4(Integer facultyId_8, Thesiscommittee related_thesiscommitteesforcommitteemember4);
}